dofile "lib/radical.lua"

function tile(s) 
  return const.path.gfx.."game/eye/"..s..".jpg"; 
end

main = engine.main {
   start        = chain_ {
                     episode_("2-eye")
                    ,musplayer_("eye_player")
                    ,walk_("start")
                  }
  ,finish       = gamefile_("2-eye/visit.lua")
}

eye = engine.state {
   _object      = 0     --A strange object appears
}

eye_player = musplayer.player {
   sfx("death"):inside("black1")
  ,sfx("death"):inside("black3")
  ,sfx("impact2"):inside("standup")
  ,sfx("swoosh"):inside("black5")
  ,sfx("impact2"):inside("room2")
  ,mus("breathe2"):inside("room1"):loop()
  ,mute():inside("black6")
  ,sfx("impact2"):inside("black6")
  
  ,mus("nightmare"):inside("view1"):loop()
  ,mute():fade(3000,3000):inside("view_room2")
  ,sfx("bam2"):inside("them")
  ,mus("hurryup"):inside("view_room3"):loop()
  ,sfx("crush2"):inside("fall2")
  ,mute():inside("title")
  ,sfx("crush2"):inside("run3_fall")
  ,sfx("bam"):inside("title")
}

function nofocus(pic, next)
  return pause {
     tile       = tile(pic)
    ,fading     = 30
    ,time       = 4000
    ,next       = next
  }
end

start = pause {
   time         = 10
  ,next         = "black1"
}

black1 = pause {
   time         = 100
  ,fading       = 30
  ,next         = "wake1"
}

wake1 = nofocus("wake", "black2")

black2 = pause {
   time         = 4000
  ,fading       = 30
  ,next         = "black3"
}

black3 = pause {
   time         = 100
  ,fading       = 30
  ,next         = "wake2"
}

wake2 = nofocus("wake", "black4")

black4 = pause {
   time         = 4000
  ,fading       = 30
  ,next         = "black5"
}

black5 = scene {
   tile         = const.path.gfx.."black.jpg"
  ,ontimer      = text_tremor("Нужно собраться с силами. Нужно заставить себя встать.", 100, 280, 12)
  ,nav          = {
                    up = vw("Подняться на ноги", safewalk_("standup"))
                  }
}

standup = tremor {
   fps          = 45
  ,fading       = 0
  ,x            = 0
  ,y            = 251
  ,step         = 4
  ,amp          = 16
  ,tile         = tile "door1"
  ,next         = "room1"
}

room1 = scene {
   tile         = tile "door1"
  ,fading       = 0
  ,ontimer      = text_tremor("Надо выбраться наружу. Там будет легче. Всего несколько шагов. Несколько шагов.", 80, 40, 12)
  ,nav          = {
                    up = vw("Выйти из комнаты", "room2")
                  }
}

room2 = tremor {
   fps          = 45
  ,fading       = 0
  ,x            = 0
  ,y            = 0
  ,step         = 4
  ,amp          = 16
  ,tile         = tile "door2"
  ,next         = "room3"
}

room3 = scene {
   tile         = tile "door2"
  ,fading       = 0
  ,ontimer      = text_tremor("Несколько шагов. Совсем немного. Уже близко.", 60, 40, 12)
  ,nav          = {
                    up = vw("Выйти из комнаты", "black6")
                  }
}

black6 = pause {
   time         = 3000
  ,next         = "view1"
}

view1 = cutscene {
   tile         = tile "roofview"
  ,dsc          = [[Здесь немного спокойнее. Ветер настолько холодный и сильный, что простояв здесь всего несколько минут 
                    как будто теряешь способность чувствовать -- все тело наливается холодом, каменеет, но ты все равно чувствуешь, 
                    что где-то внутри тебя сидит застывший, стремящийся вырваться наружу крик.]]
  ,next         = "view2"
}

view2 = cutscene {
   tile         = tile "roofview"
  ,dsc          = [[Но и все вокруг здесь тоже застыло, перестало существовать во времени. Эти страшные дома, в которых никто не живет, 
                    похожие, как вдруг начинает казаться, на посмертный слепок с чьего-то лица. Деревья, на которых весь год не появляется
                    ни одного листика. Неподвижное небо.
                  ]]
  ,next         = "view3"
}

view3 = cutscene {
   tile         = tile "roofview"
  ,dsc          = [[И все-таки здесь красиво.]]
  ,next         = "view_room1"
}

view_room1 = scene {
   tile         = tile "roofview"
  ,obj          = { "sky", "wires", "dust", "cars", "eye1" }
}

sky = staticitem {
   dsc          = "{По небу} невозможно даже определить время суток."
  ,showonce     = true
  ,act          = chain_ { inc_("eye._object"), "Скорее всего, уже за полдень. Впрочем, это не имеет значения. Время тут остановилось." }
}

wires = staticitem {
   dsc          = "Обесточенные {провода} раскачиваются на ветру."
  ,showonce     = true
  ,act          = chain_ { inc_("eye._object"), "Смотреть на них как-то болезненно, боль начинает возвращаться." }
}

dust = staticitem {
   dsc          = "На асфальте внизу клубится {пыль}."
  ,showonce     = true
  ,act          = chain_ { inc_("eye._object"), "Как маленькие смерчи." }
}

cars = staticitem {
   dsc          = "Раскрашенные панельные дома кажутся почти настоящими, и лишь ржавые скелеты машин выдают то, что место это {брошено и проклято}."
  ,showonce     = true
  ,act          = chain_ { inc_("eye._object"), "И все-таки -- как здесь красиво." }
}

eye1 = staticitem {
   dsc          = "^^Рядом с окном одного из зданий завис какой-то {темный объект}."
  ,act          = walk_("view_room2")
  ,cnd          = if_("eye._object>2")
}

view_room2 = scene {
   tile         = tile "roofview"
  ,obj          = { "eye2" }
}

eye2 = staticitem {
   dsc          = "Нужно {приглядеться}, это что-то знакомое, это..."
  ,act          = walk_("them")
}

them = pause {
   time         = 500
  ,ondrawbg     = function(s,p)
                    drawing.draw_text(p, "ЭТО ОНИ!", 300, 240, "white", const.fontb, 76);
                    return p;
                  end
  ,next         = "view_room3"
}

view_room3 = scene {
   tile         = tile "roofview"
  ,ontimer      = text_tremor("Нужно бежать! Срочно бежать! Вниз! Бежать!", 40, 40, 12)
  ,nav          = {
                    down = vw("Спрыгнуть вниз", "fall1")
                  }
}

fall1 = slidedown {
   fps          = 40
  ,tile         = tile "rope"
  ,x            = 400
  ,y            = 0
  ,starty       = -300
  ,step         = 10
  ,next         = "fall2"
}

fall2 = tremor {
   fps          = 45
  ,fading       = 0
  ,x            = 0
  ,y            = 228
  ,step         = 4
  ,amp          = 16
  ,tile         = tile "light1"
  ,next         = "fallstand"
}

fallstand = scene {
   tile         = tile "light1"
  ,ontimer      = text_tremor("Бежать! Нет ни секунды!", 40, 40, 12)
  ,nav          = {
                    down = vw("Бежать", "run1")
                  }
}

run1 = scene {
   tile         = tile "wall1"
  ,ontimer      = text_tremor("Скорее! Они уже близко!", 100, 140, 12)
  ,nav          = {
                    up = vw("Бежать", "run2")
                  }
}

run2 = scene {
   tile         = tile "wall2"
  ,ontimer      = text_tremor("Времени нет!", 180, 190, 12)
  ,nav          = {
                    up = vw("Бежать", "run3")
                  }
}

run3 = scene {
   tile         = tile "wall1"
  ,ontimer      = text_tremor("Они скоро будут здесь!", 100, 140, 12)
  ,nav          = {
                    up = vw("Бежать", "run3_fall")
                  }
}

run3_fall = pause {
   tile         = { tile "floor", 0, 20 }
  ,fading       = 0
  ,time         = 300
  ,next         = "run4"
}

run4 = scene {
   ontimer      = text_tremor("Упала. Нет! Надо вставать! Нет времени!", 40, 280, 12)
  ,fading       = 0
  ,nav          = {
                    up = vw("Встать", "run5")
                  }
}

run5 = scene {
   tile         = tile "wall2"
  ,ontimer      = text_tremor("Осталось совсем немного!", 200, 200, 12)
  ,nav          = {
                    up = vw("Бежать", "title")
                  }
}

title = chapter(2, "Падение", "main", 5000, 0)
